/*
 *  ifxdriver.hpp - Informix dbExpress driver class
 *
 *    Copyright (c) 2001-2006, Luxena Software Company. All rights reserved.
 *
 *  Purpose:
 *
 */

#ifndef __IFXDRIVER_HPP__
#define __IFXDRIVER_HPP__

#ifndef __cplusplus
#error This header requires a C++ compiler ...
#endif

#include <ifxtypes.h>
#include "dbxpress.hpp"
#include "dbxcommon.hpp"


/////////////////////////////////////////////////////////////////////////////
// API declaration

extern "C" SQLResult API_CALL_TYPE getInformixDriver(
	pCHAR pszVendorLib, pCHAR pszResourceFile, ppSQLDriver ppDrv
	);


/////////////////////////////////////////////////////////////////////////////
// CInformixDriver - SQLDriver implementation for Informix

class CInformixDriver : public CUnknownImpl<SQLDriver>
{
public:
	CInformixDriver ();

	int4 getBlobSize ();
	CCallback* getCallback ();

// SQLDriver
	SQL_METHOD getSQLConnection (ppSQLConnection ppConn);
	SQL_METHOD setOption (eSQLDriverOption eDOption, INT32 PropValue);
	SQL_METHOD getOption (eSQLDriverOption eDOption, pINT32 plValue, INT16 iMaxLength, pINT16 piLength);

private:
	                          // dbExpress driver options
	                          // ________________________
	                          //
	int4 _blobSize;          // eDrvBlobSize
	CCallback _callback;      // eDrvCallBack
	                          // eDrvCallBackInfo
};

#endif // __IFXDRIVER_HPP__
